#!/usr/bin/perl

#Название программы: Визуализация игры "Морской бой"
#Описание: Программа предназначена для визуализации игры "Морской бой". Пользователь вводит
#координаты 
#предполагаемых кораблей по очереди, через пробел в формате "а01", где а-j - координата 
#по горизонтали, 
#01 -10 - координата по вертикали. Пример ввода: ./seafight.pl a01 a04 b01 b04. Результатом выполнения 
#команды будет два двухпалубных корабля. Программа проверяет случаи на пересения
#кораблей
#Автор : Кобелев Дмитрий
#Дата последнего изменения : 15.02.2014 23.27

my $help="Название программы: Визуализация игры Морской бой\nОписание: Программа предназначена для визуализации игры Морской бой. Пользователь вводит\nкоординаты предполагаемых кораблей по очереди, через пробел в формате а01, где а-j\nкоордината по горизонтали, 01 -10 - координата по вертикали.\nПример ввода: ./seafight.pl a01 a04 b01 b04. Результатом выполнения команды будет два\nдвухпалубных корабля. Программа проверяет случаи на пересения кораблей.Касание кораблей\nдопускается.\n";
my $i=1;
my $k=10;
my $letter='a';
my @var;

if (@ARGV[0] eq "-help")
{
print $help;
exit 1;
}
my @sorted=sort({ $a cmp $b}@ARGV);
my $zero='0';
my $t=0;
for($t;$t <= length(@sorted)-1;++$t)
{
if ($sorted[$t] eq $sorted[$t+1])
{
print "Repeating coordinates!\nPlease,enter rights parametrs!\nHelp: ./seafight.pl -help\n";
exit 1;
}
}
for($letter;$letter le 'j'; ++$letter)
{
	while ($i <= 10)
	{
		if ( $sorted[0] eq "$letter$zero$i" )
		{
			push @var, "  0";
			shift @sorted;
		}
		else
		{
			if ($sorted[0] eq "$letter$i")
			{
				push @var, "  0";
				shift @sorted;
			}
			else
			{
				push @var, "  #";
			}
		}
	$i++
	}
	$i=1;
}
$i=0;
my $s='a';
my @arr=('01','02','03','04','05','06','07','08','09','10');
print "    @arr\n";
for($i; $i <= 90; ++$i)
{
	print "$s ";
		while ($i < $k)
		{
			print $var[$i];
			$i++;
		}
	$i--;
	$k=$k+10;
	$s++;
	print "\n";
}
